package cn.shengchao.dubbo.bi;

import lombok.Data;

/**
 * @program: examstarapi
 * @description: 邀请关系统一管理的数据对象
 * 企微和分销两套体系，容易出矛盾；按目前需求：邀请海报开始，初始化了分销关系和服务关系；
 *
 * 实际关系的重要性上，分销关系应该是主导，因为分销关系涉及分成，企微的服务关系是纯沟通关系。
 * 但是会存在变化,导致分销和邀请关系的不统一。
 * 主要变化：
 * 1 员工换加盟商：员工不能带走学员，分销关系保留，邀请关系还会在，是加盟商换员工来继承?
 * 2 学员升级会员
 *  2.1 原本加盟商的学员升会员; 学员自己变会员了，这个学员会员分销要挂加盟商，服务关系不会变。
 *  2.2 原本是平台注册的学员升级会员；平台注册的学员升级会员，这个会员是平台会员，原本的服务关系是平台，服务关系是否又要升级。
 * 3 加盟商不做，学员都得换
 *  3.1 原本加盟商的学员的邀请关系和服务关系都得改变。怎么变换？（指定一个加盟商或者下面员工进行挂载？）
 *
 * 存在以下几种情况：
 * 1 加盟商员工： 邀请人是加盟商员工，分销收益是加盟商，最终服务商是加盟商
 * 2 加盟商会员： 邀请人是加盟商会员，分销收益是会员，最终服务商是加盟商
 * 3 加盟商：    邀请人是加盟商，分销收益是加盟商，最终服务商是加盟商（独立）
 * 4 平台会员：  邀请人是平台会员，分销收益是平台会员，最终服务商是平台会员（独立，平台要做加盟商的角色）
 * 5 平台：     自身注册的学员，分销收益是平台，最终服务商是平台（独立）
 * @author: Xiong weiqiang
 * @create: 2025-05-02 14:36
 */
@Data
public class InviteUnifiedCheckDto {
    private Long userId;
    //最原始的邀请人，初始记录。
    private Long inviteUserId;
    //服务人，本身具体分销角色，如果不存在则为平台。
    //目前是服务人员，人员分销可以变化，分销不一定按这个用户走。
    private Long serviceUserId;
    //企微服务id
    private String serviceCpUserId;

    //邀请人，本身具体分销角色(DSPD_EMP,DSPD,SLMB,YSXG)。
    private String serviceUserDistributeCode;
    //最终服务的分销用户id（加盟商和平台会员，平台，正常与最终收益的分销用户相同）
    private Long serviceDistributeUserId;


    //分销收益id
    // 虽然目前员工是分销要核算到员工头上的，员工分成需要加盟商自己发，但员工本身不在此列。
    // 1如果加盟商更换员工，此列不变
    // 2如果会员更换了加盟商，此列不变，最终服务加盟商变
    // 3员工升会员，此列要变会员
    private Long saleDistributeUserId;

    //最终收益分销角色(DSPD,SLMB,YSXG)。
    private String finalUserDistributeCode;

    //最终收益的分销用户id（加盟商和平台会员，平台，正常与最终服务的分销用户相同）
    private Long finalDistributeUserId;

    public boolean isSameServiceDistribute(){
        return (this.serviceDistributeUserId!=null&&this.finalDistributeUserId!=null&&this.serviceDistributeUserId.equals(this.finalDistributeUserId));
    }
}